package com.dtp.core.parser;

import com.dtp.common.em.ConfigFileTypeEnum;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 配置解析器
 *
 * @author yanhom
 * @since 1.0.0
 *
 * @remark muse
 **/
public interface ConfigParser {

    /** 判断是否支持该type类型的配置解析操作 */
    boolean supports(ConfigFileTypeEnum type);

    /** 返回解析支持的类型（yaml, properties...）*/
    List<ConfigFileTypeEnum> types();

    /** 执行内容解析操作 */
    Map<Object, Object> doParse(String content) throws IOException;

    /** 执行内容解析操作 */
    Map<Object, Object> doParse(String content, String prefix) throws IOException;
}
